<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<style>
  @page {
    margin: 0;
    size: 500px 400px;
  }
  body {
    display: grid;
    grid-template-columns: 100px auto 100px;
    grid-template-rows: 100px auto 100px;
    height: 100vh;
    margin: 0;
  }
  .square {
    border: solid;
    width: 25px;
    height: 25px;
  }
  .square.left {
    margin-left: auto;
  }
  .square.top {
    margin-top: auto;
  }
  .vertical-edge {
    display: flex;
    justify-content: space-between;
  }
  .horizontal-edge {
    display: flex;
    flex-flow: column;
    justify-content: space-between;
  }
  .pagearea {
    border: solid blue;
    padding: 8px;
  }
</style>

<div class="square left top"></div>
<div class="vertical-edge">
  <div class="square top"></div>
  <div class="square top"></div>
  <div class="square top"></div>
</div>
<div class="square top"></div>
<div class="horizontal-edge">
  <div class="square left"></div>
  <div class="square left"></div>
  <div class="square left"></div>
</div>
<div class="pagearea">
  There should be 16 margin boxes around this page area. They should all be
  squares, and their borders should be flush with the blue border. They should
  not overlap with the page area.
</div>
<div class="horizontal-edge">
  <div class="square"></div>
  <div class="square"></div>
  <div class="square"></div>
</div>
<div class="square left"></div>
<div class="vertical-edge">
  <div class="square"></div>
  <div class="square"></div>
  <div class="square"></div>
</div>
<div class="square"></div>
